#ifndef __HCFA_H
#define __HCFA_H

#include "../common/common_motor.h"
#include "../common/common_modbus.h"

/* 定义禾川驱动器驱动电机的相关参数 */
struct hcfa_motor_attr
{
    motor_direction_t dir;  // 电机转动方向 1 反向 0 正向
    unsigned short rpm;     // 转速
    unsigned short acc;       // 加速度
    unsigned short dec;       // 减速度
    unsigned char running;  // 运行状态， 0 表示停止   1 表示运行
    unsigned char mode;     // 运行模式，速度模式，位置模式，转矩模式
    unsigned char io_ctrl;  // 是否使用IO控制
    unsigned char en_io;    // 启停IO
    unsigned char position_en_io;
    unsigned char dir_io;   // 方向控制IO
    unsigned char emerg_io; // 紧急制动IO
    unsigned int pluse;     // 位置模式下的脉冲数
};

/**
 * @brief       hcfa电机的构造函数，该函数会将 hcfa 对应的modbus 设备描述以及驱动函数绑定到一起
 * @param       motor:  标准的电机对象，hcfa的驱动程序已适配motor的标准的电机驱动接口函数
 *              dev:    已初始化的 modbus 设备描述
 *              name:   给于电机一个唯一的名字
 * @return      返回 0 为构造成功，返回 -1 为构造失败
 */
extern int xp_hcfa_speed_motor_constructor(struct xp_motor *motor, struct xp_modbus_device *dev, unsigned char *name);
extern int xp_hcfa_position_motor_constructor(struct xp_motor *motor, struct xp_modbus_device *dev, unsigned char *name);

extern int xp_hcfa_motor_debug(char *type, char *fun, char *param);

#endif
/* end of the file */
